import axios from "axios";
import {ElMessage} from "element-plus"
import router from "@/router"
import local from "@/utlis/local.js"

axios.defaults.baseURL="http://172.168.1.254:5000"

//请求拦截器
axios.interceptors.request.use(
    config => {
        // 为请求头添加Authorization字段为服务端返回的token
        config.headers.Authorization = local.get('tk');
        return config
    },
    err => {
        console.log("请求error")
        return Promise.reject(err)
    })

// 响应拦截器
axios.interceptors.response.use(
    response => {
        //拦截响应，做统一处理 
        const code = response.data.code;
        const msg = response.data.msg;
        //code存在的情况下
        if (code!=undefined) {
            // 0代表成功 其他为失败 排除code是00或者11的情况
            if (code === 0) {
                ElMessage.success(msg);
            } else if (code != "00" && code != "11") {
                ElMessage.error(msg);
            }
        }
        return response
    },
     //接口错误状态处理，也就是说无响应时的处理
     error => {
        console.log("响应error")
        //如果token无效 就跳转到登录页面
        if(error.response.status==401){
            ElMessage.error(error.response.data.msg);
            router.push("/login")
        }
        return Promise.reject(error.response.status) // 返回接口返回的错误信息
    })


    const get = (url,data)=>{
        return new Promise((resolve,reject)=>{
            axios.get(url,{
                params:data
            }).then(response=>{
                resolve(response.data);
            }).catch(err=>{
                reject(err);
            })
        })
    }

    const post=(url,data)=>{
        return new Promise((resolve,reject)=>{
            axios.post(url,{
                params:data
            }).then(response=>{
                resolve(response.data)
            }).catch(err=>{
                reject(err);
            })
        })
    }

export default {
    get,
    post
}